home *** CD-ROM | disk | FTP | other *** search
/ Risc World 5 / Risc World 5.iso / SOFTWARE / Issue5 / PD / DIRSYNC / LegalStuff / ccres / c / _Iconbar < prev    next >
Text File  |  2004-12-01  |  5KB  |  90 lines

  1. /* _Iconbar.c
  2.    $Id: _Iconbar.c,v 1.3 2004/12/01 23:17:48 joty Exp $
  3.  
  4.    Copyright (c) 2003-2004 Dave Appleby / John Tytgat
  5.  
  6.    This file is part of CCres.
  7.  
  8.    CCres is free software; you can redistribute it and/or modify
  9.    it under the terms of the GNU General Public License as published by
  10.    the Free Software Foundation; either version 2 of the License, or
  11.    (at your option) any later version.
  12.  
  13.    CCres is distributed in the hope that it will be useful,
  14.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.    GNU General Public License for more details.
  17.  
  18.    You should have received a copy of the GNU General Public License
  19.    along with CCres; if not, write to the Free Software
  20.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  */
  22.  
  23. #include "ccres.h"
  24.  
  25. #include <stdio.h>
  26. #include <string.h>
  27.  
  28. #include <OSLib/iconbar.h>
  29.  
  30. /* Things which should be defined in OSLib but aren't yet :
  31.  */
  32. #define iconbar_SHOW_SELECT_CENTRED        ((iconbar_flags) 0x0080u)
  33. #define iconbar_SHOW_ADJUST_CENTRED        ((iconbar_flags) 0x0100u)
  34. #define iconbar_SHOW_SELECT_AT_POINTER        ((iconbar_flags) 0x0200u)
  35. #define iconbar_SHOW_ADJUST_AT_POINTER        ((iconbar_flags) 0x0400u)
  36.  
  37. static FLAGS IconbarFlags[] = {
  38.     {iconbar_GENERATE_SELECT_ABOUT_TO_BE_SHOWN, "iconbar_GENERATE_SELECT_ABOUT_TO_BE_SHOWN"},
  39.     {iconbar_GENERATE_ADJUST_ABOUT_TO_BE_SHOWN, "iconbar_GENERATE_ADJUST_ABOUT_TO_BE_SHOWN"},
  40.     {iconbar_SELECT_IS_MENU                   , "iconbar_SELECT_IS_MENU"                   },
  41.     {iconbar_ADJUST_IS_MENU                   , "iconbar_ADJUST_IS_MENU"                   },
  42.     {iconbar_HAS_TEXT                         , "iconbar_HAS_TEXT"                         },
  43.     {iconbar_GENERATE_SELECT_CLICKED          , "iconbar_GENERATE_SELECT_CLICKED"          },
  44.     {iconbar_GENERATE_ADJUST_CLICKED          , "iconbar_GENERATE_ADJUST_CLICKED"          },
  45.     {iconbar_SHOW_SELECT_CENTRED              , "iconbar_SHOW_SELECT_CENTRED"              },
  46.     {iconbar_SHOW_ADJUST_CENTRED              , "iconbar_SHOW_ADJUST_CENTRED"              },
  47.     {iconbar_SHOW_SELECT_AT_POINTER           , "iconbar_SHOW_SELECT_AT_POINTER"           },
  48.     {iconbar_SHOW_ADJUST_AT_POINTER           , "iconbar_SHOW_ADJUST_AT_POINTER"           }
  49. };
  50.  
  51. static FLAGS IconbarPosition[] = {
  52.     {(int) wimp_ICON_BAR_RIGHT              , "wimp_ICON_BAR_RIGHT"              },
  53.     {(int) wimp_ICON_BAR_LEFT               , "wimp_ICON_BAR_LEFT"               },
  54.     {(int) wimp_ICON_BAR_LEFT_RELATIVE      , "wimp_ICON_BAR_LEFT_RELATIVE"      },
  55.     {(int) wimp_ICON_BAR_RIGHT_RELATIVE     , "wimp_ICON_BAR_RIGHT_RELATIVE"     },
  56.     {(int) wimp_ICON_BAR_LEFT_HIGH_PRIORITY , "wimp_ICON_BAR_LEFT_HIGH_PRIORITY" },
  57.     {(int) wimp_ICON_BAR_LEFT_LOW_PRIORITY  , "wimp_ICON_BAR_LEFT_LOW_PRIORITY"  },
  58.     {(int) wimp_ICON_BAR_RIGHT_LOW_PRIORITY , "wimp_ICON_BAR_RIGHT_LOW_PRIORITY" },
  59.     {(int) wimp_ICON_BAR_RIGHT_HIGH_PRIORITY, "wimp_ICON_BAR_RIGHT_HIGH_PRIORITY"}
  60. };
  61.  
  62.  
  63. static OBJECTLIST IconbarObjectList[] = {
  64.     {iol_FLAGS,  "iconbar_flags:", offsetof(iconbar_object, flags),         IconbarFlags,    ELEMENTS(IconbarFlags)                },
  65.     {iol_ENUM,   "position:",      offsetof(iconbar_object, position),      IconbarPosition, ELEMENTS(IconbarPosition)             },
  66.     {iol_INT,    "priority:",      offsetof(iconbar_object, priority),      NULL,            0                                     },
  67.     {iol_STRING, "sprite_name:",   offsetof(iconbar_object, sprite_name),   "sprite_limit:", offsetof(iconbar_object, sprite_limit)},
  68.     {iol_MSG,    "text:",          offsetof(iconbar_object, text),          "text_limit:",   offsetof(iconbar_object, text_limit)  },
  69.     {iol_STRING, "menu:",          offsetof(iconbar_object, menu),          NULL,            0                                     },
  70.     {iol_BITS,   "select_action:", offsetof(iconbar_object, select_action), NULL,            bits_ACTION                           },
  71.     {iol_BITS,   "adjust_action:", offsetof(iconbar_object, adjust_action), NULL,            bits_ACTION                           },
  72.     {iol_STRING, "select_show:",   offsetof(iconbar_object, select_show),   NULL,            0                                     },
  73.     {iol_STRING, "adjust_show:",   offsetof(iconbar_object, adjust_show),   NULL,            0                                     },
  74.     {iol_MSG,    "help_message:",  offsetof(iconbar_object, help_message),  "help_limit:",   offsetof(iconbar_object, help_limit)  }
  75. };
  76.  
  77.  
  78. int _iconbar(PDATA data, PSTR pszIn, toolbox_relocatable_object_base * object)
  79. {
  80.     put_objects(data, pszIn, 0, (PSTR) (object + 1), IconbarObjectList, ELEMENTS(IconbarObjectList));
  81.  
  82.     return(sizeof(iconbar_object));
  83. }
  84.  
  85.  
  86. void iconbar(FILE * hf, toolbox_resource_file_object_base * object, PSTR pszStringTable, PSTR pszMessageTable)
  87. {
  88.     get_objects(hf, pszStringTable, pszMessageTable, (PSTR) (object + 1), IconbarObjectList, ELEMENTS(IconbarObjectList), 1);
  89. }
  90.